
//showModel,只有确定的提示框
function showModal(content, options, callBack) {
  var defaultOptions = {
    title: '提示',
    content: content,
    showCancel: false,
    success: res => {
      callBack && callBack();
    }
  }
  var options = { ...defaultOptions, ...options }
  wx.showModal(options);
}

//toast
function showToast(title) {
  wx.showToast({
    title: title,
    icon: 'none',
    duration: 3000
  })
}

function showActionSheet(itemList, callBack) {
  wx.showActionSheet({
    itemList,
    success: res => {
      callBack && callBack(res);
    },
    fail: res => {
      var msg = res.errMsg;
      var value = msg.indexOf("cancel") != -1;
      if (!value) {
        showToast(msg);
      }
    }
  });
}

//showLoading
function showLoading(title) {
  wx.showLoading({
    title: title || '加载中...',
    mask: true
  }, 3000);
}

//hideLoading
function hideLoading() {
  wx.hideLoading()
}

// 打印
function log(res) {
  var data = res.data ? res.data : res;
  console.log('%c' + JSON.stringify(data), 'background: #222; color: #bada55');
}

// 日期格式化
function dateFormat(date, format = "YYYY-mm-dd") {
  if (!date) return
  let ret;
  date = new Date(date)
  const opt = {
    "Y+": date.getFullYear().toString(),        // 年
    "m+": (date.getMonth() + 1).toString(),     // 月
    "d+": date.getDate().toString(),            // 日
    "H+": date.getHours().toString(),           // 时
    "M+": date.getMinutes().toString(),         // 分
    "S+": date.getSeconds().toString()          // 秒
    // 有其他格式化字符需求可以继续添加，必须转化成字符串
  };
  for (let k in opt) {
    ret = new RegExp("(" + k + ")").exec(format);
    if (ret) {
      format = format.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0")))
    };
  };
  return format;
}

function getOrderStatus(status) {
  var key = status + ''
  var statusObj = {
    '1': '创建待支付',
    '2': '订单取消',
    '3': '待提货',
    '4': '待揽收',
    '5': '已提货',
    '6': '已完成',
    '7': '交易关闭',
    '10': '售后申请',
    '11': '待退回',
    '12': '待返仓',
    '13': '待退款',
    '14': '售后失败',
    '15': '售后完成',
    '16': '售后失败', // 被驳回
    '17': '审核通过',
    '18': '售后待审核',
    '20': '待退款',
    '21': '已退款',
    '22': '退款失败',
  }
  return statusObj[key]
}

function pick(object, keys = []) {
  let newObj = {}
  for (const key in object) {
    const value = object[key]
    if (keys.includes(key)) {
      newObj[key] = value
    }
  }
  return newObj
}

//下载接口
function wxDownloadFile(url) {
  return new Promise((resolve, reject) => {
    showLoading();
    wx.downloadFile({
      url: url,
      success: res => {
        //解析用户信息获取UnionId
        if (res.statusCode == 200) {
          resolve(res.tempFilePath);
        } else {
          var errorMsg = res.errMsg;
          showToast(errorMsg);
          reject(res);
        }
        hideLoading();
      },
      fail: err => {
        hideLoading();
        showToast(err.errMsg);
        reject(err);
      }
    })
  });
}


module.exports = {
  showModal,
  showToast,
  showActionSheet,
  showLoading,
  hideLoading,
  log,
  dateFormat,
  getOrderStatus,
  pick,
  wxDownloadFile
}